package com.xydtech.ecard.user.mapper;

import com.xydtech.common.core.domain.entity.SysDictData;
import com.xydtech.ecard.user.domain.EcardApiAdeptPrdtype;
import com.xydtech.ecard.user.domain.EcardApiEcardRegistInfo;
import com.xydtech.ecard.user.domain.EcardApiHotPrd;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 电子名片用户注册Mapper接口
 *
 * @author Daniel
 * @date 2021-08-30
 */
public interface EcardApiEcardRegistInfoMapper {
    /**
     * 根据registId查询用户注册信息
     * @param registId
     * @return
     */
    EcardApiEcardRegistInfo selectEcardApiEcardRegistInfoByRegistId(Long registId);

    /**
     * 根据openId获取注册用户信息
     * @param openId
     * @return
     */
    EcardApiEcardRegistInfo selectEcardApiEcardRegistInfoByOpenId(String openId);

    /**
     * 根据员工编号获取注册用户信息
     * @param userCode
     * @return
     */
    EcardApiEcardRegistInfo selectEcardApiEcardRegistInfoByUserCode(String userCode);

    /**
     * 新增电子名片用户注册
     *
     * @param ecardApiEcardRegistInfo 电子名片用户注册
     * @return 结果
     */
    int insertEcardApiEcardRegistInfo(EcardApiEcardRegistInfo ecardApiEcardRegistInfo);

    /**
     * 更新注册信息头像信息
     * @param userId
     * @param avatarFilePath
     * @return
     */
    int updateAvatar(
            @Param("userId") String userId,
            @Param("avatarFilePath") String avatarFilePath);

    /**
     * 更新系统信息头像信息
     * @param userId
     * @param avatarFilePath
     * @return
     */
    int updateSysAvatar(
            @Param("userId") String userId,
            @Param("avatarFilePath") String avatarFilePath);

    /**
     * 更新微信二维码
     * @param userId
     * @param wechatQrcodeFilePath
     * @return
     */
    int updateWechatQrcode(
            @Param("userId") String userId,
            @Param("wechatQrcodeFilePath") String wechatQrcodeFilePath);

    /**
     * 电子名片-创建工作室-信息完善
     * @param ecardRegistInfo
     * @return
     */
    int updateUserInfo(EcardApiEcardRegistInfo ecardRegistInfo);
    /**
     * 客户经理用户注销时使用
     *
     * @author yjs
     * @date 2022/11/11 14:34
     */
    int logoffManagerUser(@Param("registId") String registId);
    /**
     * 同步注册信息表的头像进入到系统用户信息表
     * @param ecardRegistInfo
     * @return
     */
    int syncAvatarPathToSys(EcardApiEcardRegistInfo ecardRegistInfo);

    /**
     * 根据法人机构查询对应的产品类表
     * @param parentDeptId
     * @return
     */
    List<SysDictData> getPrdType(Long parentDeptId);

    /**
     * 根据用户ID删除擅长领域
     * @param userId
     * @return
     */
    int delAdeptPrdTypeByUserId(String userId);

    /**
     * 根据用户ID删除推荐业务
     * @param userId
     * @return
     */
    int delHotPrdByUserId(String userId);

    /**
     * 保存员工擅长的业务
     * @param userId
     * @param prdTypes
     * @return
     */
    int saveAdeptPrdType(
            @Param("userId") String userId,
            @Param("prdTypes") String[] prdTypes,
            @Param("deptId") Long deptId);

    /**
     * 保存员工的优选产品
     * @param userId
     * @param prdIds
     * @return
     */
    int saveHotPrd(
            @Param("userId") String userId,
            @Param("prdIds") String prdIds);

    /**
     * 获取客户经理的擅长领域
     * @param userId
     * @return
     */
    List<EcardApiAdeptPrdtype> getAdeptPrdTypeList(String userId);

    /**
     * 获取客户经理的热门产品
     * @param userId
     * @return
     */
    List<EcardApiHotPrd> getHotPrdList(String userId);

    /**
     * 电子名片-创建工作室-获取头像和微信二维码路径
     * @param userId
     * @return
     */
    List<Map<String, Object>> getAvatarAndWechatQrcode(String userId);


    /**
     * 电子名片-注册信息-完善用户信息
     * @param userId
     * @param nickName
     * @param avatarUrl
     * @return
     */
    int completeUserInfo(
            @Param("userId") String userId,
            @Param("nickName") String nickName,
            @Param("avatarUrl") String avatarUrl);

    /**
     * 更新注册表员工号
     * @param ecardRegistInfo
     * @return
     */
    int updateUserCode(EcardApiEcardRegistInfo ecardRegistInfo);
}
